﻿''' <summary>
''' フェッチクエリプロバイダー
''' </summary>
''' <remarks></remarks>
Public Class FetchQueryProvider
    Inherits QueryProvider

    ''' <summary>
    ''' コンストラクタ
    ''' </summary>
    ''' <param name="loader">モデルローダー</param>
    ''' <param name="fetchTarget">フェッチ対象リスト</param>
    ''' <remarks></remarks>
    Public Sub New(loader As Loader, fetchTarget As IList)
        MyBase.New(loader)
        Me.FetchTarget = fetchTarget
    End Sub

    ''' <summary>
    ''' フェッチ対象リスト
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Private Property FetchTarget As IList

    ''' <summary>
    ''' 結果を格納するリストを生成します
    ''' </summary>
    ''' <param name="listType"></param>
    ''' <returns></returns>
    ''' <remarks>生成せず、フェッチ対象のリストを返します</remarks>
    Protected Overrides Function CreateListInstance(listType As Type) As IList
        Me.FetchTarget.Clear()
        Return Me.FetchTarget
    End Function

End Class
